import java.util.ArrayDeque;
import java.util.Queue;
import java.util.Scanner;

/**
 * 题目描述
 * 假设有一家奶茶店，现在有一些人在排队等待取奶茶，同时也有人在取奶茶。 请你设计一个程序模拟这种情况下的奶茶队列管理。
 *
 * 假设每个人取奶茶的时间非常短，可以忽略不计，只需要考虑队列中的操作。
 *
 * 队列操作说明：
 *
 * 1. 当操作为 1 时，表示有人已经取走奶茶，从队列中删除该人的信息。
 * 2. 当操作为 2 时，表示有新人加入排队，将该人的信息加入队列。
 *
 * 在一系列操作之后，你需要回答：下一个取奶茶的人是谁？
 *
 * 输入描述
 * 第一行有一个整数 n，代表初始队列有 n 个人。
 *
 * 第二行有 n 个字符串，代表当前奶茶队列中的人。
 *
 * 第三行为一个整数 m，代表接下来将会有 m 次操作。
 *
 * 接下来一共有 m 行，代表共有 m 次操作。
 *
 * 如果是操作 1，那么该行只会有一个数字，代表有人取走了奶茶。
 * 如果是操作 2，那么该行有一个数字和一个字符串，第一个数字 2 表示有人加入了奶茶队列，第二个字符串代表新加入的奶茶队列的人。
 *
 * 输出描述
 * 输出只有一行，为下一个取奶茶的人。 如果已经没有去奶茶的人了，输出“There are no more people in the queue.”。
 * 输入示例
 * 5
 * Giselle Winter Aubree Wrenley Royalty
 * 3
 * 1
 * 1
 * 2 Andrew
 * 输出示例
 * Aubree
 */
public class Main20 {
    public static void main(String[] args) {
        getQueueEle();
    }

    public static void getQueueEle(){
        Scanner scanner = new Scanner(System.in);
        int qNum = scanner.nextInt();
        // 接收当前队列已有的人
        ArrayDeque<String> deque = new ArrayDeque<>();
        for (int i = 0; i < qNum; i++) {
            deque.add(scanner.next());
        }
        System.out.println(deque);
        // 操作指令数量
        int optNum = scanner.nextInt();
        for (int i = 0; i < optNum; i++) {
            int opt = scanner.nextInt();
            // 操作指令为1 且 队列不为空的情况下，移除队列头部元素
            if (opt == 1){
                if (!deque.isEmpty()){
                    deque.poll();
                }else {
                    continue;
                }
            } else {
                // 否则添加元素到队尾
                deque.add(scanner.next());
            }
        }
        if (deque.isEmpty()){
            System.out.println("There are no more people in the queue.");
        }else {
            // 输入 队列头部元素
            System.out.println(deque.peek());
        }
    }
}
/**
 * 队列的常用操作主要有以下几种：
 *
 * isEmpty(): 判断队列是否为空，如果队列为空返回true， 否则返回false
 * add(): 入队操作，将新的元素添加到队列的尾部。
 * poll()： 出队操作，获取并移除队列的头部元素。
 * peek(): 访问队列的头部元素，但不会将其移除。
 * size(): 获取队列的长度，即队列中元素的数量。
 *
 * Queue<String> queue = new LinkedList<>(); // 使用LinkedList实现队列
 * Queue<Integer> queue = new ArrayDeque<>(); // 使用ArrayDeque实现队列
 */
